Enterprise software systems may comprise many independent computer programs, applications, modules, or components. These applications may execute in a distributed manner on several different computers. Applications often require the services provided by other applications. A first application requesting a service from a second application may be said to act in a client role while the second application may be said to act in a server role. The first application may provide services to yet other applications and may in that case act in a server role. The intercommunicating applications may be executing on computers located far apart and in different divisions of the company.
The address or location of these services and servers may be maintained, such as by hard-coding, in client modules. When a server is relocated, perhaps to a different computer system to distribute loads evenly among multiple computer systems, the code on the client module must be changed to employ the new address of the server. When the client code is changed it must be installed and brought into service, in some cases interrupting operations, if only temporarily. The address or location of these services and servers may alternately be provided as a file entry, as in a configuration file or an initialization file. In this case, when a server is relocated the configuration or initialization files must be updated to reflect the new location of the service and or server.